// 全局变量，用于某些事件效果
var _m_down = false;
var _s_area = false;
var _wnav = window.parent.frames['topnav'];
var _nav_lis = [];
var _in_iframe = false;	// 是否在iframe中
if(window.location.href.indexOf('_iframe=yes') != -1){
	_in_iframe = true;
}
var __ajaxing = false;
var ueditor = null;

function add_nav_btn(opt){
	var def = {
		'dir'		: ''
		,'class'	: ''
		,'title'	: ''
		,'text'		: ''
		,'href'		: ''
		,'ttl'		: 1200
	}
	var s = $.extend({}, def, opt);
	var h = [];
	var c = [];
	h.push('dir="'+s['dir']+'"');
	h.push('ttl="'+s['ttl']+'"');
	if(s['title'] != ''){
		h.push('title="'+s['title']+'"');
		c.push('poshytip');
	}
	if(s['href'] != ''){
		h.push('href="'+s['href']+'"');
	}
	if(s['class'] != '')c.push(s['class']);
	if(c.length > 0)h.push('class="'+(c.join(' '))+'"');

	h = h.join(' ');
	//var li = $('<li><a '+h+'>'+s['text']+'</a></li>');
	var li = '<li><a '+h+'>'+s['text']+'</a></li>';

	_nav_lis.push(li);
}

jQuery(function($){
	/*******************************************************************************
	 * jQuery Ajax 全局事件
	 *******************************************************************************/

	$(document).ajaxStart(function(event, request, settings){
		__ajaxing = true;
		//console.log('ajaxStart');
		//showmsg_loading('AJAX处理中。。。', {title:'AJAX'});
	});
	$(document).ajaxStop(function(event, request, settings){
		__ajaxing = false;
		$(document).dequeue("ajax");	// 触发队列下一个成员
	});
	
	// 触发Ajax队列
	$(document).dequeue("ajax");
	
	// 表单提交时，切换到编辑窗口
	/*if(gi('iForm'))$('#iForm').bind('submit', function(event){
		event.stopPropagation();
		show_ebody();
	});*/
	
	// 搜索表单，切换到列表窗口
	/*$('#sForm').submit(function(event){
		event.stopPropagation();
		//show_ibody();
	});*/
	
	// 右边主体内容链接-列表窗口
	/*$('table.data_form tbody tr td a[target="iBody"]').click(function(event){
		event.stopPropagation();
		show_ibody();
	});*/

	// 添加快速导航按钮	
	add_nav_btn({
		'dir'		: 'div.topSpace'
		,'class'	: 'go-top'
		,'title'	: '回到页面最顶端'
		,'ttl'		: 500
	});
	add_nav_btn({
		'dir'		: '#cmd'
		,'class'	: 'go-cmd'
		,'title'	: '滚动到操作区'
		,'ttl'		: 500
	});
	add_nav_btn({
		'dir'		: '#bottom'
		,'class'	: 'go-bottom'
		,'title'	: '滚动到页面最底端'
		,'ttl'		: 500
	});
	if(_s.DEBUG_PR == '1'){
		add_nav_btn({
			'dir'		: '#debug_info'
			,'class'	: 'go-debug'
			,'title'	: '滚动到调试信息区'
			,'ttl'		: 500
		});
	}
	
	
	if(_wnav && _wnav.init_nav_btn && _wnav.add_nav_btn){
		try{
			_wnav.init_nav_btn();	// 初始化导航窗口
			for(var x in _nav_lis){	// 尝试添加到导航窗口
				_wnav.add_nav_btn(_nav_lis[x]);
			}
			$('#quick_nav').remove();
		}catch(e){}
	}else{
		for(var x in _nav_lis){
			if(x > 0)$('#quick_nav ul').append('<li style="width:16px; height:32px;">&nbsp;</li>');
			$('#quick_nav ul').append(_nav_lis[x]);
		}			
		$('#quick_nav ul li a').click(function(){
			var dir = $.trim($(this)[0].getAttribute('dir'));
			var ttl = parseInt($(this)[0].getAttribute('ttl'));
			var cls = $.trim($(this)[0].getAttribute('class'));
			var target = $(dir);
			$.scrollTo(target, ttl, {axis:'y', queue:true, offset:-80});
			$(this).trigger('blur');
			return false;
		});
		$('#quick_nav ul').append('<div class="clear"></div>');
		$('#quick_nav').width($('#quick_nav ul').width());	// 修正IE问题，IE下内层无法自适应宽度

		var is_show_qn = get_cookie('quick_nav');
		if(is_show_qn != 'show'){
			$('#quick_nav ul').hide();
		}

		$('#quick_nav a.drag').click(function(){
			// 保存到COOKIE
			var is_show_qn = get_cookie('quick_nav');
			is_show_qn = is_show_qn == 'show' ? 'hide' : 'show';
			set_cookie('quick_nav', is_show_qn);
			// 隐现
			$('#quick_nav ul').fadeToggle(100);
			$(this).trigger('blur');
			return false;
		});
	}
	
	// PoshyTip 提示插件
	$('.poshytip[title]').each(function(index, domEle){
		var opts = {
			nouse					: true
			// ,content				: ''
			// ,className			: ''
			,bgImageFrameSize		: 20
			,showTimeout			: 0
			,hideTimeout			: 100
			,timeOnScreen			: 0
			,showOn					: 'hover'
			,liveEvents				: true
			,alignTo				: 'cursor'
			,alignX					: 'right'
			,alignY					: 'top'
			,allowTipHover			: true
			,followCursor			: true
			,fade					: true
			,slide					: true
			,slideOffset			: 8
			,showAniDuration		: 100
			,hideAniDuration		: 200
			,offsetY				: 20
			// ,offsetX				: 0
		};
		var cls = $.trim($(this).attr('rel'));
		if(cls == '' || ',tip-darkgray,tip-green,tip-skyblue,tip-twitter,tip-violet,tip-yellow,tip-yellowsimple,'.indexOf(','+cls+',') == -1){
			if(_s['style'] == 'black'){
				cls = 'tip-twitter';
				opts['alignTo']		= 'target';
				opts['alignX']		= 'center';
				opts['alignY']		= 'top';
			}else{
				cls = 'tip-yellow';
			}
		}
		opts['className'] = cls;
		$(this).poshytip(opts);
	});

	var $tb = $('table.data_form');
	if($tb.length > 0){
		init_table($);
	}

});

function callback_frlist(params){	// 列表批量操作回调函数
	// params.url = params.url == '' ? 'refresh' : params.url;
	params.url = params.url || '';
	if(params.url == 'remove'){
		params.url = '';
		$('table.data_form tbody tr th input[type="checkbox"]:checked').each(function(){
			$(this).parents('tr').remove();
		});
	}
	params.msg = params.msg || '操作失败';
	callback_common(params);
}

function show_ibody(){
	try{
		window.parent.frames['topnav'].eori();
	}catch(e){
		top.frames["topnav"].eori();
	}
}
function show_ebody(){
	try{
		window.parent.frames['topnav'].iore();
	}catch(e){
		top.frames["topnav"].iore();
	}
}

// 字符限定	// http://calefy.org/2012/11/12/javascript-key-events-and-input-control.html
function char_limit(dom, type){
	dom = dom || 'input[type=text][name^="rank"]';
	type = type || 'int';
	var input = $(dom);
	input.keydown(function(evt){
		//console.log('type = '+type+'\t,keyCode = '+evt.keyCode);
		if(evt.keyCode != 8		&&	// Backspace
			evt.keyCode != 13	&&	// Enter
			evt.keyCode != 16	&&	// Shift
			evt.keyCode != 35	&&	// End
			evt.keyCode != 36	&&	// Home
			evt.keyCode != 37	&&	// Left
			evt.keyCode != 38	&&	// Up
			evt.keyCode != 39	&&	// Right
			evt.keyCode != 40	&&	// Down
			evt.keyCode != 46		// Delete
		){
			switch(type){
				case 'int':		// 整数
					if(!((evt.keyCode >= 96 && evt.keyCode <= 105) || (evt.keyCode >= 48 && evt.keyCode <= 57))){
						return false;
					}
					break;
				case 'float':	// 浮点数
					if(!(evt.keyCode == 110 || evt.keyCode == 190 || (evt.keyCode >= 96 && evt.keyCode <= 105) || (evt.keyCode >= 48 && evt.keyCode <= 57))){
						return false;
					}
					break;
				case 'letter':	// 字母
					if(!((evt.keyCode >= 65 && evt.keyCode <= 90) || (evt.keyCode >= 97 && evt.keyCode <= 122))){
						return false;
					}
					break;
			}
		}
	});
}

// 修改按钮事件，列表里面第一个被选中的行
/*function modify(){
	var a = $('table.data_form tbody tr th input[type="checkbox"][checked="1"]:eq(0)').parents('tr').find('a[target="eBody"]:eq(0)');
	if(a.attr('href')){
		self.parent.frames['eBody'].location = a.attr('href');
		show_ebody();
	}else{
		alert(_l.edit_in_selected);
		return false;
	}
}*/

// 删除按钮事件，列表里面被选中的行
function be_del(){
	if($('table.data_form tbody tr th input[type="checkbox"]:checked').size() > 0){
		if(confirm(_l.del+_l.selected+_l.row+'？')){
			return true;
		}else{
			return false;
		}
		
	}else{
		alert(_l.none+_l.selected+_l.row);
		return false;
	}
}

// 全选或取消全选
function sel_all(a, name){
	if(a.alt == 'yes'){
		a.alt = 'no';
		$('table.data_form tbody tr td input[type="checkbox"][name^="'+name+'"]').attr('checked', true);
	}else{
		a.alt = 'yes';
		$('table.data_form tbody tr td input[type="checkbox"][name^="'+name+'"]').attr('checked', false);
	}
}

/*******************************************************************************
 * 百度编辑器，插入图片
 *******************************************************************************/
function insert_to_ueditor(src, alt){
	alt = alt || '';
	ueditor.execCommand("insertHtml", '<a href="'+src+'" title="'+alt+'" rel="{@rel}" class="{@class}"><img src="'+src+'" alt="'+alt+'" /></a>');
}

/*******************************************************************************
 * 初始化表格
 *******************************************************************************/

function init_table($){

	$('form#lForm').submit(function(){
		// 总分浏览器无法识别下面的动作，暂注释
		/*var src = document.activeElement;
		if(src.name != 'formAction'){
			return false;
		}*/
		var formAction = $.trim($(this).find('input[name="formAction"]').val());
		if(formAction == ''){
			return false;
		}
		if(formAction.indexOf('_del') != -1){
			var beDel = be_del();
			if(!beDel){
				return false;
			}
		}
	});

	// 表单不能嵌套，分离后，只好用JS来触发
	$('div.btns button').click(function(){
		var formAction = $.trim($(this).val());
		if(formAction == ''){
			return false;
		}
		$('form#lForm').find('input[name="formAction"]').val(formAction).end().trigger('submit');
	});


	if($('table.data_form tbody tr').size() == 0){
		var colspan = $('table.data_form thead tr th').size();
		$('table.data_form tbody').html('<tr><td colspan="'+colspan+'"><div class="sysinfo"><h1>没有找到符合条件的项目！请适当调整筛选条件再试，祝您好运^_^</h1></div></td></tr>'); 
		return false;
	}

	// 主键排序
	$('#major_key').find('select').change(function(){
		$(this).parents('form').trigger('submit');
	});

	// 文档鼠标事件 ## 没有效果
	$(document).mousedown(function(){
		_m_down = true;
		if(_s_area){
			return false;	// 取消 FireFox 下文本选中
		}
	}).mouseup(function(){
		_m_down = false;
		_s_area = false;
	});
	
	// 为配合去掉 FireFox 下文本选中状态追加此事件
	$('table.data_form tbody tr th').mousedown(function(event){
		event.preventDefault();
		_m_down = true;
		_s_area = true;
		//
		var input = $(this).find('input[type="checkbox"]');
		if(input.attr('checked') == undefined || input.attr('checked') == false){
			input.attr('checked', true);
			$(this).parents('tr').attr('class', 'be-select');
		}else{
			input.attr('checked', false);
			$(this).parents('tr').attr('class', '');
		}
				
		return false;		// 取消 FireFox 下文本选中
	});

	// 鼠标经过高亮
	$('table.data_form tbody tr').hover(
		function(event){
			event.stopPropagation();
			$(this).attr('class', 'be-select');
		},
		function(event){
			event.stopPropagation();
			var checked = $(this).find('th input[type="checkbox"]').attr('checked');
			if(checked == true || checked == 'checked'){
				return;
			}
			$(this).attr('class', '');
		}
	);
	
	// 全选 与 取消
	$('table.data_form thead tr th').mousedown(function(event){
		//event.stopPropagation();
		_m_down = true;
		return false;		// 取消 FireFox 下文本选中
	});
	$('table.data_form thead tr th input[type="checkbox"]').live('click', function(event){
		event.stopPropagation();
		var checked = $(this).attr('checked');
		if(checked == true || checked == 'checked'){
			//$(this).attr('title', _l.selnone);
			$('form table tbody tr th input[type="checkbox"]').attr('checked', true);
			$('form table tbody tr').attr('class', 'be-select');
		}else{
			//$(this).attr('title', _l.selall);
			$('form table tbody tr th input[type="checkbox"]').attr('checked', false);
			$('form table tbody tr').attr('class', '');
		}
		//return false;
	});
		
	// 选中加亮当前行
	$('table.data_form tbody tr th input[type="checkbox"]').click(function(event){
		event.stopPropagation();
		if($(this).attr('checked') == false){
			$(this).parents('form').find('thead tr th input[type="checkbox"]').attr('checked', false);
			$(this).parents('tr').attr('class', '');
		}else{
			$(this).parents('tr').attr('class', 'be-select');
		}
		return false;
	}).mousedown(function(event){
		//event.stopPropagation();
		//_m_down = true;
	});
	$('table.data_form tbody tr th').hover(
		function(){	// 滑铲事件，需要与 Document 的 MouseDown 事件配合
			if(_m_down == true){
				var input = $(this).find('input[type="checkbox"]');
				if(input.attr('checked') == undefined || input.attr('checked') == false){
					input.attr('checked', true);
					$(this).parents('tr').attr('class', 'be-select');
				}else{
					input.attr('checked', false);
					$(this).parents('tr').attr('class', '');
				}
			}
			
			if(document.selection){	// 去掉高亮的文本选择状态，仅IE下有效
			   document.selection.empty(); 
			}
			//return false;
		},
		function(){}
	);
	
	// 排序号键盘事件
	/*$('.data_form tbody tr td input[type=text][name^="rank"]').keyup(function(event){
		if(!((event.keyCode > 95 && event.keyCode < 106) || (event.keyCode > 47 && event.keyCode < 58))){
			$(this).val('');
		}
	});	*/

	// 阻止下拉列表的冒泡事件
	$('table.data_form tbody tr td select').click(function(event){
		event.stopPropagation();
	});
	
	// 阻止输入框表的冒泡事件
	$('table.data_form tbody tr td input').click(function(event){
		event.stopPropagation();
	});

	// 右边主体内容链接-编辑窗口
	$('a[target="eBody"]').click(function(event){
		event.stopPropagation();
		show_ebody();
	});

	// 页码跳转
	$('div.pagelist a').click(function(event){
		var page = (($(this).attr('href')).split('#')).pop();
		$('#page').val(page);
		$(this).parents('form').trigger('submit');
		return false;
	});

	// 弹出层
	$('a.open_frame').live('click', function(){
		if(_in_iframe)return false;
	　　var title	= $(this).attr('title');
	　　var href	= $(this).attr('href');
	　　var action	= $(this).attr('action');
		action = action || false;
		
	　　open_frame({
		　　'title'		: title
		　　,'url'		: href
		　　,'action'	: action
	　　});
	　　return false;
	});
	$('input[type="button"][func="open_frame"]').click(function(){
	　　var title	= $(this).attr('title');
	　　var href	= $(this).attr('href');
	　　var action	= $(this).attr('action');
		action = action || false;
		
	　　open_frame({
		　　'title'		: title
		　　,'url'		: href
		　　,'action'	: action
	　　});
	　　return false;
	});

	$('table.data_form button.dos').click(function(){
		var id = $(this).attr('alt');
		var formAction = $(this).val();
		$(this).parents('form').find('input[type="checkbox"][name="list[]"]').attr('checked', false);
		$(this).parents('tr').find('input[type="checkbox"][name="list[]"]').attr('checked', true);
		$(this).parents('form').find('input[name="formAction"]').val(formAction).end().trigger('submit');
	});

	/*******************************************************************************
	 * 内全选
	 *******************************************************************************/
	$('table.data_form .chlist input[type="checkbox"][name="selall"]').live('click', function(){
		var checked = $(this).attr('checked');
		if(checked == true || checked == 'checked'){
			$(this).parents('ul.chlist').find('input[type="checkbox"]').attr('checked', true);
		}else{
			$(this).parents('ul.chlist').find('input[type="checkbox"]').attr('checked', false);
		}
	});

	/*******************************************************************************
	 * 固定表头
	 *******************************************************************************/
	if(/*_s['do'] == 'list' && */true){
		var _t = 500;
		$('table.data_form').each(function(){
			if($(this).find("thead").size() > 0){
				var _tb = $(this);
				setTimeout(function(){_tb.fixedtableheader();}, _t += 500);
			}
		});
	}
}


